package com.lyj.validates.controller;

import com.lyj.validates.dto.UserDto;
import com.lyj.validates.utils.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 用户相关api
 * @author:liyajie
 * @createTime:2022/1/20 10:18
 * @version:1.0
 */
@RestController
@Slf4j
public class UserController {

    /**
     * 保存用户信息（原始校验方式）
     * @author: liyajie
     * @date: 2022/1/20 11:27
     * @param userDto-用户dto
     * @return void
     * @exception:
     * @update:
     * @updatePerson:
     **/
    @PostMapping("/saveUser1")
    public String saveUser1(@RequestBody UserDto userDto){
        if("".equals(userDto.getId())){
            return "用户id不能为空";
        }
        if("".equals(userDto.getName())){
            return "用户名称不能为空";
        }
        if("".equals(userDto.getSalary())){
            return "用薪水不能为空";
        }
        if(String.valueOf(userDto.getAge()).length() > 3){
            return "用户年龄长度不能大于3位";
        }
        try{
            Date date = DateUtil.formatStr2Date(userDto.getCreateDate(), "yyyy-MM-dd HH:mm:ss");
        }catch (Exception e){
            e.printStackTrace();
            return "日期格式校验不通过";
        }
        // 模拟保存用户
        List<UserDto> list = new ArrayList<UserDto>();
        list.add(userDto);
        return "保存用户成功";
    }


    /**
     * 保存用户信息（使用spring-boot-starter-validation之后的校验方式）
     * @author: liyajie
     * @date: 2022/1/20 11:28
     * @param userDto-用户dto
     * @return void
     * @exception:
     * @update:
     * @updatePerson:
     **/
    @PostMapping("/saveUser2")
    public String saveUser2(@Valid @RequestBody UserDto userDto){
        List<UserDto> list = new ArrayList<UserDto>();
        list.add(userDto);
        return "保存用户成功";
    }


}
